package LMS.service;

import LMS.domain.Request;
import LMS.domain.body.ShowRequestBody;
import LMS.utils.PaginationSupport;

import java.util.List;

public interface RequestService {

    /**
     * 创建借阅请求
     *
     * @param account
     * @param bookItemId
     */
    void createRequest(String account,long bookItemId);

    /**
     * 删除所有正在审核的请求
     *
     * @param bookItemId
     *      图书副本id
     */
    void refuseAllByBookItemId(long bookItemId, long checkerId);
    /**
     * 查询请求
     *
     * @param id
     *      请求id
     * @return
     */
    Request getRequestById(long id);

    /**
     * 通过请求
     *
     * @param requestId
     *      请求id
     * @param checkerId
     *      管理员id
     */
    void passRequest(long requestId, long checkerId);

    /**
     * 拒绝请求
     *
     * @param requestId
     *      请求id
     * @param checkerId
     *      管理员id
     */
    void denyRequest(long requestId, long checkerId);

    /**
     * 待处理的请求
     *
     * @param pageNo
     *      页码
     * @param pageSize
     *      页面容量
     * @return
     */
    PaginationSupport<ShowRequestBody> getCurrentRequests(int pageNo, int pageSize);

    /**
     * 某个用户的借阅请求
     *
     * @param account
     *      用户名
     * @param pageNo
     *      页码
     * @param pageSize
     *      容量
     * @return
     */
    PaginationSupport<ShowRequestBody> getBorrowerRequests(String account,int pageNo,int pageSize);

    /**
     * 借阅这正在进行的请求
     *
     * @param account
     *      用户名
     * @return
     */
    List<ShowRequestBody> getBorrowerCurrentRequests(String account);
}
